package adt;

import kernel.CPU.Request;

/**
 * Idle Process that doesn't do anything.
 * @author Chris Ren
 * @author Aaron Fung
 */
public class IdleProcess extends CPUprocess{

	/**
	 * Special pid 10000
	 * @param the_pid useless parameter since it's an idle process.
	 */
	public IdleProcess(int the_pid) {
		super(10000);
	}

	/**
	 * doesn't increase step count.
	 */
	@Override
	public void proceessoutput() {
		getPCB().resetStep();
	}

	
	@Override
	public String toString() {
		
		return "Idle process";
	}

	/**
	 * return null cause not suppose generates any request.
	 */
	@Override
	public Request getRequest() {
		return null;
	}
	
	/**
	 *  Override to return true, saying this is an idle state.
	 */
	@Override
	public boolean isIdle()
	{
		return true;
	}

}
